package com.SparkCore.RDD.Builder

import org.apache.spark.{SparkConf, SparkContext}

/**
 * 从文件中创建RDD
 */
object Spark02_RDD_Feil_Par {
  def main(args: Array[String]): Unit = {

    //准备环境
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("RDD") //setMaster("Local[*]") 表示默认核数
    val sc = new SparkContext(sparkConf)

    //创建RDD
    //textFeil 可以将文件按作为数据处理的数据源，默认也可以设定分区
    // minPartitions :最小分区数量
    //math.min(defaultParallelism, 2)  默认为两个分区
    //如果不采用默认分区的话就可以通过第二个参数进行定义分区的大小
    /**
     * 分区数量的计算方式
     * totalSize = 7
     * goalSize = 7 / 2 = 3 （byte）
     * Spark读取文件本质上使用的就是Hadoop的读取方式，切片是一点一倍
     * 7 / 3 = 2.。。。1（1.1） + 1 = 3 分区
     */
    val rdd = sc.textFile("datas/1.txt")

    rdd.saveAsTextFile("output")

    //关闭环境
    sc.stop()
  }
}
